package team.knowers.qzhserver.course.datum.file.service;

import team.knowers.qzhserver.course.datum.file.entity.dao.FileDO;

import java.util.Set;

/**
 * @author zcb
 * @date 2024/3/9 23:30
 */
public interface FileCacheService {
    /**
     * 设置资料缓存
     * @param fileDO 资料对象
     */
    void setFile(FileDO fileDO);

    /**
     * 根据资料id获取资料对象
     * @param id 资料id
     */
    FileDO getFile(String id);

    /**
     * 根据资料id删除资料缓存
     * @param id 资料id
     */
    void delFile(String id);

    /**
     * 一次性将整个集合（一个课程所拥有的资料库的id）导入缓存
     * @param cdid   资料库id
     * @param data  资料库中的所有资料的id集合
     */
    void setDatumFileSetAll(String cdid, Set<String> data);

    /**
     * 向资料库的资料集合中加入单个数据
     * @param cdid   资料库id
     * @param id    资料id
     */
    void setDatumFileSet(String cdid,String id);


    /**
     * 在缓存中删除整个资料库的资料集合
     * @param cdid 资料库id
     */
    void delDatumFileSetAll(String cdid);

    /**
     * 在缓存中删除某个资料库资料集合中的一个资料
     * @param cdid 资料库id
     * @param id    资料id
     */
    void delDatumFileSet(String cdid,String id);

    /**
     * 从缓存中获取某个资料库的资料集合
     * @param cdid 资料库id
     * @return 资料库的资料集合
     */
    Set<String> getDatumFileSet(String cdid);

}
